1. Field of the Present Invention
The present invention is in the field of data processing networks and, more particularly, data processing networks in which resources from a pool of available resources are dynamically allocated as needed.
2. History of Related Art
In the field of information technology (IT), provisioning is an increasingly important concept. Provisioning, as the term is used in this disclosure, refers to functionality that enables an environment such as a data center to allocate IT resources as they are needed. In a fully automated provisioning implementation, a data center may respond to variations in load by allocating and deallocating servers to a particular server cluster.
A web server cluster, for example, may require more servers during peak demand periods (such as when consumers are likely to be accessing the cluster) while a database server cluster may be configured to execute the bulk of its tasks at other times. In this scenario, provisioning may include allocating servers from a pool of available server resources to the web server cluster during normal business hours, deallocating some servers from the web server cluster after hours, and allocating server resources to the database server cluster during off hours.
This simple example illustrates a primary benefit of provisioning, namely, dynamic allocation of resources to conserve the amount of total resources required. Instead of configuring the database server cluster with sufficient server resources to handle the peak database workload and the web server cluster with sufficient server resources to handle the peak web server workload, the total resources required are reduced by using server capacity more efficiently. In addition, automated provisioning reduces the amount of time and human effort required to configure resources for a particular task and thereby reduces management overhead.
While automated data provisioning is a theoretically desirable goal, customers are justifiably wary of automated provisioning implementations. Regardless of the level of automation, customers tend to desire a mechanism by which they can monitor or control the manner in which the automation is deployed. It would be desirable, therefore, to implement an automated provisioning environment and user interface that enabled an administrator to monitor and control automated provisioning activity.
Provisioning as it has generally been implemented to date, is devoted more or less exclusively to core provisioning tasks, namely, allocation of resources in response to fluctuating demand or loading. IT administrators recognize, however, that other activities such as maintenance tasks and reservation requests (for developmental testing as an example), must be accommodated and that these activities have generally been handled through ad hoc and manual resource re-allocation. It would be desirable, therefore, if the implemented automated provisioning solution encompassed not only the traditional provisioning tasks, but also resource-consuming activity that has not been previously considered together with core resource provisioning activity.
In addition, a concern with automated provisioning implementations involves the concept of stabilization. Stabilization, as it suggests, refers to the stability of a particular resource allocation state. Illustrating with a simple example, stabilization concerns would advise against allocating a currently available server to a particular customer application when it is known that the server is scheduled for mandatory maintenance. Similarly, stabilization policies might prevent re-allocation of a resource from a first application to a second application when it can be predicted from historical data that the first application will soon experience a demand surge. In the absence of at least some stabilization policies, automated provisioning may result in provision “thrashing” in which resources are being allocated and re-allocated frequently and the provisioning overhead associated with each re-allocation tends to mitigate, if not entirely negate, any benefit provided. Whereas, conventional automated provisioning systems do not adequately recognize or accommodate provisioning policies, it would be desirable to implement an automated provision system that fully embraced provisioning concerns and enabled the integration of provisioning policies into the provisioning domain.